package com.ruoyi.financial.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 对账批次明细（保存对账结果明细的）对象 t_cw_check_batch_detail
 * 
 * @author ruoyi
 * @date 2021-06-22
 */
public class TCwCheckBatchDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 自增 */
    private Long id;

    /** 账期年月日（yyyymmdd） */
    @Excel(name = "账期年月日", readConverterExp = "y=yyymmdd")
    private String billDay;

    /** 对账年月日(yyyymmdd) */
    @Excel(name = "对账年月日(yyyymmdd)")
    private String checkDay;

    /** 批次ID */
    @Excel(name = "批次ID")
    private Long batchId;

    /** 批次号（yyyymmdd001） */
    @Excel(name = "批次号", readConverterExp = "y=yyymmdd001")
    private String batchNo;

    /** 交易流水号，支付订单的支付订单号 */
    @Excel(name = "交易流水号，支付订单的支付订单号")
    private String payOrderNo;

    /** 渠道订单号，支付订单中的渠道订单号 */
    @Excel(name = "渠道订单号，支付订单中的渠道订单号")
    private String qudaoOrderNo;

    /** 渠道名称：拉卡拉 交易渠道：暂时固定拉卡拉。 */
    @Excel(name = "渠道名称：拉卡拉 交易渠道：暂时固定拉卡拉。")
    private String tradeQudao;

    /** 记账凭证：支付接口回调更新支付状态的时候：已记账的才参与对账。交易流水号+100（未记账）（自动） 交易流水号+101（已记账）（自动）交易流水号+111（已记账）（手动） */
    @Excel(name = "记账凭证：支付接口回调更新支付状态的时候：已记账的才参与对账。交易流水号+100", readConverterExp = "未=记账")
    private String certificateJz;

    /** 对账凭证：支付接口回调更新支付状态的时候：已记账的才参与对账。交易流水号+200（未对账）（自动））,交易流水号+201（已对账）（自动）,交易流水号+211（已对账）（手动） */
    @Excel(name = "对账凭证：支付接口回调更新支付状态的时候：已记账的才参与对账。交易流水号+200", readConverterExp = "未=对账")
    private String certificateDz;

    /** 交易结果：接口回调或者返回的结果 1:处理中，2:成功，3:失败。 */
    @Excel(name = "交易结果：接口回调或者返回的结果 1:处理中，2:成功，3:失败。")
    private Integer tradeResult;

    /** 交易金额：支付订单金额（显示账单和系统支付订单中的金额，用“/”拼接） */
    @Excel(name = "交易金额：支付订单金额", readConverterExp = "显=示账单和系统支付订单中的金额，用“/”拼接")
    private String amount;

    /** 交易日期:：渠道支付时间（显示账单和系统支付订单中的渠道支付时间，用“/”拼接） */
    @Excel(name = "交易日期:：渠道支付时间", readConverterExp = "显=示账单和系统支付订单中的渠道支付时间，用“/”拼接")
    private String tradeDateZf;

    /** 手续费：对账文件里面的手续费 */
    @Excel(name = "手续费：对账文件里面的手续费")
    private BigDecimal commissionFee;

    /** 支付方式,同流水里面一样 1:微信扫码，2:支付宝扫码，3:微信公众号，4:认证支付，5:代付到银行卡 */
    @Excel(name = "支付方式,同流水里面一样 1:微信扫码，2:支付宝扫码，3:微信公众号，4:认证支付，5:代付到银行卡")
    private Integer payWay;

    /** 交易账户：出端的账户如果是快捷支付：银行卡号，如果是支付宝微信扫码支付，理论上就是支付宝微信账号，H5也是微信账号。提现的时候：拉卡拉的企业账户） */
    @Excel(name = "交易账户：出端的账户如果是快捷支付：银行卡号，如果是支付宝微信扫码支付，理论上就是支付宝微信账号，H5也是微信账号。提现的时候：拉卡拉的企业账户）")
    private String tradeAccount;

    /** 交易账户类型：暂定1:微信，2:支付宝，3:银行卡，4:拉卡拉（微信扫码和H5都是微信，支付宝扫码就是支付宝，认证就是银行卡，提现的时候是拉卡拉） */
    @Excel(name = "交易账户类型：暂定1:微信，2:支付宝，3:银行卡，4:拉卡拉", readConverterExp = "微=信扫码和H5都是微信，支付宝扫码就是支付宝，认证就是银行卡，提现的时候是拉卡拉")
    private Integer tradeAccountType;

    /** 对账完成时间：对账记录的创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "对账完成时间：对账记录的创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkEndDate;

    /** 是否差错， 0：否， 1：是 */
    @Excel(name = "是否差错， 0：否， 1：是")
    private Integer hasDiff;

    /** 差错处理结果：1：未处理, 2：要结算，3：不结算，4：已处理 (对于入金，选择2，或者3来提示处理结果，出金，线下处理账款，上来标记已处理状态, 没有差错的时候为空) */
    @Excel(name = "差错处理结果：1：未处理, 2：要结算，3：不结算，4：已处理 (对于入金，选择2，或者3来提示处理结果，出金，线下处理账款，上来标记已处理状态, 没有差错的时候为空)")
    private Integer processState;

    /** 是否完成对账, 1:完成，2：未完成， 3：取消 */
    @Excel(name = "是否完成对账, 1:完成，2：未完成， 3：取消")
    private Integer completeState;

    /** 对账确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "对账确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmDate;

    /** 商户可结算金额（入金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，差错处理的时候提示信息判断用, 为0的时候，表示没有结算金额） */
    @Excel(name = "商户可结算金额", readConverterExp = "入=金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，差错处理的时候提示信息判断用,,为=0的时候，表示没有结算金额")
    private BigDecimal canClearingAmount;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private BigDecimal reserve1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private Long reserve2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    private String reserve3;

    /** 预留字段4 */
    @Excel(name = "预留字段4")
    private String reserve4;

    /** 预留字段5 */
    @Excel(name = "预留字段5")
    private String reserve5;

    /** 删除标识,0:未删除，1：删除 */
    @Excel(name = "删除标识,0:未删除，1：删除")
    private Integer delFlg;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long createUserid;

    /** 更新用户ID */
    @Excel(name = "更新用户ID")
    private Long updateUserid;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setBillDay(String billDay) 
    {
        this.billDay = billDay;
    }

    public String getBillDay() 
    {
        return billDay;
    }
    public void setCheckDay(String checkDay) 
    {
        this.checkDay = checkDay;
    }

    public String getCheckDay() 
    {
        return checkDay;
    }
    public void setBatchId(Long batchId) 
    {
        this.batchId = batchId;
    }

    public Long getBatchId() 
    {
        return batchId;
    }
    public void setBatchNo(String batchNo) 
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo() 
    {
        return batchNo;
    }
    public void setPayOrderNo(String payOrderNo) 
    {
        this.payOrderNo = payOrderNo;
    }

    public String getPayOrderNo() 
    {
        return payOrderNo;
    }
    public void setQudaoOrderNo(String qudaoOrderNo) 
    {
        this.qudaoOrderNo = qudaoOrderNo;
    }

    public String getQudaoOrderNo() 
    {
        return qudaoOrderNo;
    }
    public void setTradeQudao(String tradeQudao) 
    {
        this.tradeQudao = tradeQudao;
    }

    public String getTradeQudao() 
    {
        return tradeQudao;
    }
    public void setCertificateJz(String certificateJz) 
    {
        this.certificateJz = certificateJz;
    }

    public String getCertificateJz() 
    {
        return certificateJz;
    }
    public void setCertificateDz(String certificateDz) 
    {
        this.certificateDz = certificateDz;
    }

    public String getCertificateDz() 
    {
        return certificateDz;
    }
    public void setTradeResult(Integer tradeResult) 
    {
        this.tradeResult = tradeResult;
    }

    public Integer getTradeResult() 
    {
        return tradeResult;
    }
    public void setAmount(String amount) 
    {
        this.amount = amount;
    }

    public String getAmount() 
    {
        return amount;
    }
    public void setTradeDateZf(String tradeDateZf) 
    {
        this.tradeDateZf = tradeDateZf;
    }

    public String getTradeDateZf() 
    {
        return tradeDateZf;
    }
    public void setCommissionFee(BigDecimal commissionFee) 
    {
        this.commissionFee = commissionFee;
    }

    public BigDecimal getCommissionFee() 
    {
        return commissionFee;
    }
    public void setPayWay(Integer payWay) 
    {
        this.payWay = payWay;
    }

    public Integer getPayWay() 
    {
        return payWay;
    }
    public void setTradeAccount(String tradeAccount) 
    {
        this.tradeAccount = tradeAccount;
    }

    public String getTradeAccount() 
    {
        return tradeAccount;
    }
    public void setTradeAccountType(Integer tradeAccountType) 
    {
        this.tradeAccountType = tradeAccountType;
    }

    public Integer getTradeAccountType() 
    {
        return tradeAccountType;
    }
    public void setCheckEndDate(Date checkEndDate) 
    {
        this.checkEndDate = checkEndDate;
    }

    public Date getCheckEndDate() 
    {
        return checkEndDate;
    }
    public void setHasDiff(Integer hasDiff) 
    {
        this.hasDiff = hasDiff;
    }

    public Integer getHasDiff() 
    {
        return hasDiff;
    }
    public void setProcessState(Integer processState) 
    {
        this.processState = processState;
    }

    public Integer getProcessState() 
    {
        return processState;
    }
    public void setCompleteState(Integer completeState) 
    {
        this.completeState = completeState;
    }

    public Integer getCompleteState() 
    {
        return completeState;
    }
    public void setConfirmDate(Date confirmDate) 
    {
        this.confirmDate = confirmDate;
    }

    public Date getConfirmDate() 
    {
        return confirmDate;
    }
    public void setCanClearingAmount(BigDecimal canClearingAmount) 
    {
        this.canClearingAmount = canClearingAmount;
    }

    public BigDecimal getCanClearingAmount() 
    {
        return canClearingAmount;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setReserve1(BigDecimal reserve1) 
    {
        this.reserve1 = reserve1;
    }

    public BigDecimal getReserve1() 
    {
        return reserve1;
    }
    public void setReserve2(Long reserve2) 
    {
        this.reserve2 = reserve2;
    }

    public Long getReserve2() 
    {
        return reserve2;
    }
    public void setReserve3(String reserve3) 
    {
        this.reserve3 = reserve3;
    }

    public String getReserve3() 
    {
        return reserve3;
    }
    public void setReserve4(String reserve4) 
    {
        this.reserve4 = reserve4;
    }

    public String getReserve4() 
    {
        return reserve4;
    }
    public void setReserve5(String reserve5) 
    {
        this.reserve5 = reserve5;
    }

    public String getReserve5() 
    {
        return reserve5;
    }
    public void setDelFlg(Integer delFlg) 
    {
        this.delFlg = delFlg;
    }

    public Integer getDelFlg() 
    {
        return delFlg;
    }
    public void setCreateUserid(Long createUserid) 
    {
        this.createUserid = createUserid;
    }

    public Long getCreateUserid() 
    {
        return createUserid;
    }
    public void setUpdateUserid(Long updateUserid) 
    {
        this.updateUserid = updateUserid;
    }

    public Long getUpdateUserid() 
    {
        return updateUserid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("billDay", getBillDay())
            .append("checkDay", getCheckDay())
            .append("batchId", getBatchId())
            .append("batchNo", getBatchNo())
            .append("payOrderNo", getPayOrderNo())
            .append("qudaoOrderNo", getQudaoOrderNo())
            .append("tradeQudao", getTradeQudao())
            .append("certificateJz", getCertificateJz())
            .append("certificateDz", getCertificateDz())
            .append("tradeResult", getTradeResult())
            .append("amount", getAmount())
            .append("tradeDateZf", getTradeDateZf())
            .append("commissionFee", getCommissionFee())
            .append("payWay", getPayWay())
            .append("tradeAccount", getTradeAccount())
            .append("tradeAccountType", getTradeAccountType())
            .append("checkEndDate", getCheckEndDate())
            .append("hasDiff", getHasDiff())
            .append("processState", getProcessState())
            .append("completeState", getCompleteState())
            .append("confirmDate", getConfirmDate())
            .append("canClearingAmount", getCanClearingAmount())
            .append("remarks", getRemarks())
            .append("reserve1", getReserve1())
            .append("reserve2", getReserve2())
            .append("reserve3", getReserve3())
            .append("reserve4", getReserve4())
            .append("reserve5", getReserve5())
            .append("delFlg", getDelFlg())
            .append("createUserid", getCreateUserid())
            .append("createTime", getCreateTime())
            .append("updateUserid", getUpdateUserid())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
